package com.telit.common.enums;

import com.telit.common.util.LanguageUtils;


/**
 * 请求返回状态码和说明信息
 * 定义状态码后，请将该状态码添加进入国际化文件 classpath:i18n/errors.* 中
 *
 * @see LanguageUtils
 */
public enum ResultCode {
    SUCCESS("00000", "成功"),
    BAD_REQUEST("40000", "参数或者语法不对"),
    FORM_PARAMS_CHECK_ERROR("40014", "表单参数校验失败"),
    REQUEST_PARAMS_CHECK_ERROR("40013", "单个参数校验失败"),
    FILE_TYPE_ERROR("40015", "上传文件格式错误，仅支持[{0}]"),

    UNAUTHORIZED("40102", "认证失败"),
    AUTHC_ILLEGAL("40101", "登录凭据无效"),
    AUTHC_LOCKED("40103", "用户账户已被锁定"),
    AUTHC_FORBID("40104", "用户账户已被禁用"),

    AUTHZ_UNAUTHZ("40201", "访问资源未经授权"),

    OPERATE_ERROR("40500", "操作失败，请求操作的资源不存在"),
    HAS_COMMAND_AND_CONTROL("40501", "有火情正在进行指挥调度"),
    TIME_OUT("40800", "请求超时"),

    SERVER_ERROR("59000", "服务器内部错误"),
    OPERATION_ERROR("50000", "操作失败"),
    SERVER_FEIGN_ERROR("50017", "open feign 远程调用出错"),
    ARG_PARSE_GET("50011", "GET请求参数解析失败"),
    ARG_PARSE_POST("50012", "POST请求参数解析失败"),
    ARG_BIND_GET("50013", "GET请求参数校验失败"),
    ARG_BIND_POST("50014", "POST请求参数校验失败"),
    NOT_ALLOWED_METHOD("50015", "不支持当前请求方法"),
    NOT_ALLOWED_MEDIA("50016", "不支持当前媒体类型"),
    RECORD_EXIST("50018", "记录已经存在"),

    UNKNOWN_EXCEPTION_STATUS("500", "服务器繁忙"),

    ;
    private String code;
    private String msg;

    ResultCode(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public String getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }
}
